Micron Document
NexusPi Git Node


Displaying Raw • Download

lib/microReticulum/src/Cryptography/AES.h 20ec0b4ee3f3e7a8b3c8d00dcdcd5afdcf2bc840 (20ec0b4e) Text, 2.79 KB

Tff7b72#Tff7b72pragma once

Tff7b72#Tff7b72include T8b949e"CBC.h"

Tff7b72#Tff7b72include T8b949e"../Bytes.h"

Tff7b72#Tff7b72include T8b949e<AES.h>

Te6edf3namespace Te6edf3RNS Tb4b4b4{ Te6edf3namespace Te6edf3Cryptography Tb4b4b4{

Te6edf3class Te6edf3AES_128_CBC Tb4b4b4{

Te6edf3publicTff7b72:
Tff7b72static Tff7b72inline Tff7b72const Te6edf3Bytes Te6edf3encryptTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3plaintextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES128Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3Bytes Te6edf3ciphertextTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3encryptTb4b4b4(Te6edf3ciphertextTb4b4b4.Te6edf3writableTb4b4b4(Te6edf3plaintextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3ciphertextTb4b4b4;
Tb4b4b4}

Tff7b72static Tff7b72inline Tff7b72const Te6edf3Bytes Te6edf3decryptTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3ciphertextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES128Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3Bytes Te6edf3plaintextTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3decryptTb4b4b4(Te6edf3plaintextTb4b4b4.Te6edf3writableTb4b4b4(Te6edf3ciphertextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3plaintextTb4b4b4;
Tb4b4b4}

T8b949e// EXPERIMENTAL - overwrites passed buffer
Tff7b72static Tff7b72inline Tffa657void Te6edf3inplace_encryptTb4b4b4(Te6edf3BytesTff7b72& Te6edf3plaintextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES128Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3encryptTb4b4b4(Tb4b4b4(Tffa657uint8_tTff7b72*Tb4b4b4)Te6edf3plaintextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e// EXPERIMENTAL - overwrites passed buffer
Tff7b72static Tff7b72inline Tffa657void Te6edf3inplace_decryptTb4b4b4(Te6edf3BytesTff7b72& Te6edf3ciphertextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES128Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3decryptTb4b4b4(Tb4b4b4(Tffa657uint8_tTff7b72*Tb4b4b4)Te6edf3ciphertextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tb4b4b4}Tb4b4b4;

Te6edf3class Te6edf3AES_256_CBC Tb4b4b4{

Te6edf3publicTff7b72:
Tff7b72static Tff7b72inline Tff7b72const Te6edf3Bytes Te6edf3encryptTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3plaintextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES256Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3Bytes Te6edf3ciphertextTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3encryptTb4b4b4(Te6edf3ciphertextTb4b4b4.Te6edf3writableTb4b4b4(Te6edf3plaintextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3ciphertextTb4b4b4;
Tb4b4b4}

Tff7b72static Tff7b72inline Tff7b72const Te6edf3Bytes Te6edf3decryptTb4b4b4(Tff7b72const Te6edf3BytesTff7b72& Te6edf3ciphertextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES256Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3Bytes Te6edf3plaintextTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3decryptTb4b4b4(Te6edf3plaintextTb4b4b4.Te6edf3writableTb4b4b4(Te6edf3ciphertextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3plaintextTb4b4b4;
Tb4b4b4}

T8b949e// EXPERIMENTAL - overwrites passed buffer
Tff7b72static Tff7b72inline Tffa657void Te6edf3inplace_encryptTb4b4b4(Te6edf3BytesTff7b72& Te6edf3plaintextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES256Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3encryptTb4b4b4(Tb4b4b4(Tffa657uint8_tTff7b72*Tb4b4b4)Te6edf3plaintextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3plaintextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

T8b949e// EXPERIMENTAL - overwrites passed buffer
Tff7b72static Tff7b72inline Tffa657void Te6edf3inplace_decryptTb4b4b4(Te6edf3BytesTff7b72& Te6edf3ciphertextTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3keyTb4b4b4, Tff7b72const Te6edf3BytesTff7b72& Te6edf3ivTb4b4b4) Tb4b4b4{
Te6edf3CBCTff7b72<Te6edf3AES256Tff7b72> Te6edf3cbcTb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setKeyTb4b4b4(Te6edf3keyTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3keyTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3setIVTb4b4b4(Te6edf3ivTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ivTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Te6edf3cbcTb4b4b4.Te6edf3decryptTb4b4b4(Tb4b4b4(Tffa657uint8_tTff7b72*Tb4b4b4)Te6edf3ciphertextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3dataTb4b4b4(Tb4b4b4)Tb4b4b4, Te6edf3ciphertextTb4b4b4.Te6edf3sizeTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Tb4b4b4}Tb4b4b4;

Tb4b4b4} Tb4b4b4}

Served by rngit 1.4.2 - Generated in 0.02s